package syspizza.pedido;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import syspizza.cliente.Cliente;
import syspizza.pedido.item.IItem;
import syspizza.tableModel.Coluna;


public class Pedido implements Serializable {

    private Cliente cliente;
    private List<IItem> itens;
    private Date dataCadastro;
    private int Id;

    public Pedido(Cliente cliente, List<IItem> itens, Date dataCadastro, int Id) {
        this.cliente = cliente;
        this.itens = itens;
        this.dataCadastro = dataCadastro;
        this.Id = Id;
    }

    public Pedido() {
    }

    @Coluna(posicao = 0, rotulo = "Cód")
    public int getId() {
        return Id;
    }

    public void setId(int Id) {
        this.Id = Id;
    }

    @Coluna(posicao = 1, rotulo = "Cliente")
    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public List<IItem> getItens() {
        return itens;
    }

    public void setItens(List<IItem> itens) {
        this.itens = itens;
    }

    @Coluna(posicao = 2, rotulo = "Data Cadastro")
    public Date getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    @Coluna(posicao = 3, rotulo = "Qtde")
    public int getQtdeItens() {
        return this.itens.size();
    }

    @Coluna(posicao = 4, rotulo = "Valor Pedido")
    public float getValorPedido() {
        if (this.itens.isEmpty()) {
            return 0;
        }
        float total = (float) this.itens
                .parallelStream()
                .mapToDouble(p -> p.getValorVenda())
                .sum();
        return total;
    }

}
